#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/wait.h>

int main()
{
  int pipefd[2];
  //父进程创建管道
  int ret=pipe(pipefd);
  //创建失败，返回-1
  if(ret<0)
  {
    perror("pipe error");
    return -1;
  }
  char*data="I am father";
  //父进程向管道的写端写入数据
  write(pipefd[1],data,strlen(data));
  //创建子进程
  pid_t pid1=fork();
  if(pid1==0)
  {
    char buf[1024]={0};
    //子进程从管道的读端读取strlen(data)个字节的数据到buf中
    read(pipefd[0],buf,strlen(data));
    printf("子进程接收到父进程的数据：%s\n",buf);
    exit(0);
  }
  //等待子进程退出
  wait(NULL);
  return 0;
}
